package com.ytsky.hctechnologysys.interceptor;


import com.ytsky.hctechnologysys.entity.Employee;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * 登录拦截器，可以拦截每一个请求（类似于过滤器）
 * d对每一个请求，测试期相应的会话对象中有没有user属性
 * 如果有，则放过该请求的访问，否则 表明当前用户没有登录 跳转到登录页面 强制登录
 * @author Dell
 */
public class LoginInerceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request , HttpServletResponse response, Object handler) throws Exception{

        //从当前请求对象中取出对应的session对象
        // 复习：在服务器内存中查找 与requ
        HttpSession session = request.getSession();

        //
        Employee user = (Employee) session.getAttribute("user");

        if(user != null){
            // 如果user 存在，这意味着用户已经登录
            //如果已经是登录状态 则放行这个请求
            return true;
        }
        //直接调用HttpServletPesponse对象的方法 设置响应为重定向
        response.sendRedirect("/login");


        //返回false意味着不再做任何处理
        return false;
    }
}
